2// pages/index/send.js
const app = getApp()
var API = require('../../utils/api.js')
var util = require('../../utils/util.js')

Page({



  /**
   * 页面的初始数据
   */
  data: {
    // canIUse: wx.canIUse('button.open-type.getUserInfo'),
    /** 页面配置 */
    winWidth: 0,
    winHeight: 0,
    // tab切换  
    currentTab: 0,
    mengShow: false,
    price: "",//随机发送的糖果个数
    priceFixed: '',//固定发糖果的个数（最低0.01）
    quantity: '',//打包份数
    description: '',//祝福语（描述）
    residual: '',//账户余额
    userInfo: {},
    hasUserInfo: false,
    temp: '0.00',
    tempFixed: '0.00',
    pageColor: '#E6CFA1',
    // pageDisplay: 'none',
    // pageDisplay1:'block',
    // pageDisplay2: 'none',
    alert: '',
    priceTextFontColor: '#333333',
    priceFontColor: "#333333",
    quantityTextFontColor: '#333333',
    quantityFontColor: "#333333",
    btnDisable: 'disabled',
    inpDisable: 'disabled',
    isAmountFixed: false,//是否是平均分配（默认是随机分配，true为平均分配）
    top: '-49rpx',
    pageHeight: "0rpx",
    token: '',
    redPacketId: "",//红包ID
    nickname: '',//用户名
    id: ''//用户ID
  },

//取消红包金额错误提示
  noMoneyTip:function(){
    this.setData({
      alert: '',
      top: '-49rpx',
      pageHeight: '0rpx',
      priceTextFontColor: '#333333',
      priceFontColor: "#333333",
    })
  },

//取消红包份数错误提示
  noQuantityTip: function () {
    this.setData({
      alert: '',
      top: '-49rpx',
      pageHeight: '0rpx',
      quantityTextFontColor: '#333333',
      quantityFontColor: "#333333",
    })
  },

//红包金额错误提示
  moneyTip: function (e) {
    this.setData({
      alert: e,
      top: '-1rpx',
      priceTextFontColor: '#F56139',
      priceFontColor: '#F56139',
      btnDisable: 'disabled',
      pageHeight: '48rpx'
    })
  },

//红包份数错误提示
  quantityTip: function (e) {
    this.setData({
      quantityTextFontColor: '#F56139',
      quantityFontColor: '#F56139',
      btnDisable: 'disabled',
      top: '-1rpx',
      alert: e,
      pageHeight: '48rpx'
    })
  },

  // 糖果个数判断
  sendMoney: function (e) {  
    const priceInp = e.detail.value;
    const residual = this.data.residual;
    const quantityInp = this.data.quantity

//定义num，转换输入的金额为数字，判断是否为NaN,若为NaN,将金额情况，且总金额显示为0.00
    var num = Number(priceInp);
    console.log('price=='+quantityInp)
    var _this = this
    
    if (!isNaN(priceInp)) {
      _this.setData({ 
        temp: num.toFixed(2),
        price:priceInp
         })
    }else{
      _this.setData({
        temp: '0.00',
        price: ''
      })
    }

//输入金额后，打包份数默认为1，避免弹出提示
    if(!quantityInp){
      _this.setData({quantity:'1'})
    }


//判断输入的金额是否有误，reg正则表达式为最多两位小数的正数  
    var reg =/^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/;
    if(!reg.test(priceInp)) {
      _this.moneyTip('请输入正确的数量,小数只能输入两位')
    }else{
      _this.noQuantityTip();
      _this.noMoneyTip() ;
      if(priceInp * 100  > residual * 100){
        console.warn("priceinp =======" +priceInp+',,,,,residual === '+residual)
        _this.setData({price:priceInp})
        _this.moneyTip('输入金额不能大于可用余额')
      }else if(priceInp / quantityInp < 0.01){
        _this.setData({ price: priceInp })
        _this.moneyTip('单个包金额不能小于0.01')
      }else if (priceInp > 10000){
        _this.setData({ price: priceInp })
        _this.moneyTip('单个包金额不能超过10000')
      } else if (priceInp < 1) {
        _this.setData({ price: priceInp })
        _this.moneyTip('单个包金额不能小于1')
      } else if (parseInt(quantityInp) > 100) {
        _this.setData({ quantity: quantityInp })
        _this.quantityTip('打包份数不能超过100份')
      } else if (parseInt(quantityInp) < 1) {
        _this.setData({ quantity: quantityInp })
        _this.quantityTip('打包份数不能少于一份')
      } else {
        console.warn(quantityInp)
        _this.setData({
          price: priceInp,
          btnDisable: ''
        })
        _this.noMoneyTip()
      }        
    }
  },

  //固定金额
  sendFixedMoney: function (e) {
    const priceFixed = e.detail.value;
    const residual = this.data.residual;
    const quantityInp = this.data.quantity

    var num = Number(priceFixed * 10000 * quantityInp / 10000);
    console.log('quantity==' + quantityInp)
    var _this = this

    if (!isNaN(priceFixed)) {
      _this.setData({
        tempFixed: num.toFixed(2),
        priceFixed: priceFixed
      })
    } else {
      _this.setData({
        tempFixed: '0.00',
        priceFixed: ''
      })
    }

    // if (!quantityInp) {
    //   _this.setData({ quantity: '1' })
    // }



    var reg = /^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/;
    if (!reg.test(priceFixed)) {
      _this.moneyTip('请输入正确的数量,小数只能输入两位')
    } else {
      _this.noQuantityTip();
      _this.noMoneyTip();
      if (priceFixed * 100 > residual * 100) {
        _this.setData({ priceFixed: priceFixed })
        _this.moneyTip('输入金额不能大于可用余额')
      } else if (priceFixed * 10000 * quantityInp / 10000 < 1) {
        _this.setData({ priceFixed: priceFixed })
        _this.moneyTip('单个包金额不能小于0.01，单次发送金额不能少于1')
      } else if (priceFixed > 10000) {
        _this.setData({ priceFixed: priceFixed })
        _this.moneyTip('单个包金额不能超过10000')
      } else if (priceFixed < 1) {
        _this.setData({ priceFixed: priceFixed })
        _this.moneyTip('单个包金额不能小于1')
      } else if (parseInt(quantityInp) > 100) {
        _this.setData({ quantity: quantityInp })
        _this.quantityTip('打包份数不能超过100份')
      } else if (parseInt(quantityInp) < 1) {
        _this.setData({ quantity: quantityInp })
        _this.quantityTip('打包份数不能少于一份')
      } else {
        console.warn(quantityInp)
        _this.setData({
          priceFixed: priceFixed,
          btnDisable: ''
        })
        _this.noMoneyTip()
      }
    }
  },


  //糖果打包份数判断
  sendQuantity: function (e) {
    const quantityInp = e.detail.value;
    const residual = this.data.residual;
    const priceInp = this.data.price;
    const priceFixed = this.data.priceFixed;
    const isFixed = this.data.isAmountFixed;

    var _this = this

    if (!priceInp || !priceFixed) {
      _this.setData({
        quantity: quantityInp
      })
    }

    var reg = /^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/;

    if(isFixed == false){
      var num = Number(priceInp);
      console.log('quan==' + quantityInp)
      

      if (!isNaN(priceInp)) {
        _this.setData({
          temp: num.toFixed(2),
          price: priceInp,
        })
      } else {
        _this.setData({
          temp: '0.00',
          price: '',
        })
      }
      

      if (!reg.test(priceInp)) {
        _this.moneyTip('请输入正确的数量,小数只能输入两位')
      } else {
        if (priceInp * 100 > residual * 100) {
          _this.setData({
            price: priceInp,
          })
          _this.moneyTip('糖果数量不能超过可用余额')
        } else if (priceInp / quantityInp < 0.01) {
          _this.setData({
            price: priceInp,
          })
          _this.moneyTip('单个糖果数量不能少于0.01')
        } else if (parseInt(quantityInp) < 1) {
          _this.setData({ quantity: quantityInp })
          _this.quantityTip('打包份数不能少于1份')
        } else if (parseInt(quantityInp) > 100) {
          _this.setData({ quantity: quantityInp })
          _this.quantityTip('打包份数不能大于100份')
        } else {
          _this.setData({
            price: priceInp,
            quantity: quantityInp,
            btnDisable: ''
          })
          _this.noQuantityTip()
        }
      }
    }else{
      var numF = Number(priceFixed * 10000 * quantityInp / 10000);
      console.log('quan==' + quantityInp)
      var _this = this

      if (!isNaN(priceFixed)) {
        _this.setData({
          tempFixed: numF.toFixed(2),
          priceFixed: priceFixed,
        })
      } else {
        _this.setData({
          tempFixed: '0.00',
          priceFixed: '',
        })
      }



      if (!reg.test(priceFixed)) {
        _this.moneyTip('请输入正确的数量,小数只能输入两位')
      } else {
        if (priceFixed * 10000 * quantityInp / 10000 > residual) {
          _this.setData({
            priceFixed: priceFixed,
          })
          _this.moneyTip('糖果数量不能超过可用余额')
        } else if (priceFixed * 10000 * quantityInp / 10000 < 1) {
          _this.setData({
            priceFixed: priceFixed,
          })
          _this.moneyTip('单个糖果数量不能少于0.01')
        } else if (parseInt(quantityInp) < 1) {
          _this.setData({ quantity: quantityInp })
          _this.quantityTip('打包份数不能少于1份')
        } else if (parseInt(quantityInp) > 100) {
          _this.setData({ quantity: quantityInp })
          _this.quantityTip('打包份数不能大于100份')
        } else {
          _this.setData({
            pricefixed: priceFixed,
            quantity: quantityInp,
            btnDisable: ''
          })
          _this.noQuantityTip();
          _this.noMoneyTip();
        }
      }
    }


    

  },


  description: function (e) {
    var description = e.detail.value
    this.setData({
      description: description,
      alert: '',
      top: '-49rpx',
      quantityTextFontColor: '#333333',
      quantityFontColor: '#333333',
      pageHeight: '0rpx',
      priceTextFontColor: '#333333',
      priceFontColor: "#333333",
    })
  },

  //显示发送红包，存储红包信息并准备发送
  showMeng: function (e) {
    var description = this.data.description;
    var quantityInp = this.data.quantity;
    var priceInp = this.data.price;

    if (description == '') {
      this.setData({ description: '送您一份BIZ糖果大礼包，快来抢哦!' })
    }

    console.log('描述为：' + this.data.description)
    try {
      wx.setStorageSync('priceInp', priceInp);
      wx.setStorageSync('quantityInp', quantityInp);
      wx.setStorageSync('description', description);
    } catch (e) {
    }

    var priceFixed = this.data.priceFixed;
    var isAmountFixed = this.data.isAmountFixed;
    var redPacketId = this.data.redPacketId;
    var userId = this.data.id
    //取出APP.JS存储在storage里的token并赋值给data里的token和userId
    var _this = this
    _this.setData({
      token: wx.getStorageSync('token')
    })

    _this.setData({
      id: wx.getStorageSync('userId')
    })


    if (isAmountFixed == false) {
      API.create({
        method: 'POST',
        data: { 'amount': priceInp, 'splitCount': quantityInp, 'isAmountFixed': isAmountFixed, 'description': description },
        success: function (res) {
          if(res.data.errno == 0){
            console.log(JSON.stringify(res))
            var str = res.data.data.redPacketId;
            var n = Number(str)
            if (!isNaN(n) || str) {
              _this.setData({ 
                redPacketId: res.data.data.redPacketId, 
                mengShow: true
                });
              console.log("URL11===/pages/split/split?isAmountFixed=" + _this.data.isAmountFixed + '&redPacketId=' + _this.data.redPacketId);
            } else {
              _this.moneyTip("糖果数量有误，请重新输入")
              _this.setData({ mengShow: false})
            }
          }else{
            util.alert('网络错误,请稍后再试')
          }
        }
      })

    } else {
      API.create({
        method: 'POST',
        data: { 'amount': priceFixed, 'splitCount': quantityInp, 'isAmountFixed': isAmountFixed, 'description': description },
        success: function (res) {
          var str = res.data.data.redPacketId;
          var n = Number(str)
          if(res.data.errno == 0){
            if (!isNaN(n) || str) {
            console.log(JSON.stringify(res))
            _this.setData({
              redPacketId: res.data.data.redPacketId,
              mengShow: true
            });
            console.log("URL11===/pages/split/split?isAmountFixed=" + _this.data.isAmountFixed + '&redPacketId=' + _this.data.redPacketId);
          } else {
            _this.moneyTip("糖果数量有误，请重新输入")
            _this.setData({mengShow:false})
          }
          }

        }
      })

    }

  },
  //关闭发送红包
  mengHide: function (e) {
    this.setData({ mengShow: false })
  },




  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var _this = this
    app.getToken().then(function (promiseRes) {
      // console.log('pormiseRes===' + JSON.stringify(promiseRes))
      // if app.js中的网络状态码返回200表示连接服务器成功，执行以下代码，否则弹出提示询问是否重新连接
      if (promiseRes.status == 200) {
        var _token = promiseRes.token
        var userId = promiseRes.userId
        var _userInfo = promiseRes.userInfo

        _this.setData({
          token: _token,
          userInfo: promiseRes.userInfo
        })
        API.balance({
          success: function (res) {
            if (res.data.errno == 0) {
              _this.setData({ residual: res.data.data.balance })
            } else {
              util.alert('连接服务器失败，请稍后再试')
            }

          },
          fail: function (res) {
            console.log('index.res：' + JSON.stringify(res))
          }
        })
      } else {
        setTimeout(wx.redirectTo({
          url: '/pages/index/index',
        }), 500)
      }
    })
  },


  // 随机分配和平均分配的切换
  bindChange: function (e) {

    var that = this;
    that.setData({
      currentTab: e.detail.current,
    });

  },
  //点击tab切换 

  swichNav: function (e) {

    var that = this;

    if (this.data.currentTab === e.target.dataset.current) {
      return false;
    } else {
      that.setData({
        currentTab: e.target.dataset.current,
      })
    }

    if (this.data.isAmountFixed == false) {
      that.setData({
        isAmountFixed: true,
        price_placeholder: '填写数量',
        quantity_placeholder: '填写份数',
        btnDisable: 'disabled',
        temp: '0.00',
        tempFixed: '0.00',
        priceFixed: "",
        quantity: '',
      })
    } else {
      that.setData({
        isAmountFixed: false,
        price_placeholder: '填写数量',
        quantity_placeholder: '填写份数',
        btnDisable: 'disabled',
        temp: '0.00',
        tempFixed: '0.00',
        price: "",
        quantity: '',
      })
    }

  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (res) {
    var description = this.data.description
    var that = this

    if (res.from === 'button') {
      // 来自页面内转发按钮
      console.log("target==" + JSON.stringify(res))
      return {
        title: description,
        path: "/pages/split/split?isAmountFixed=" + that.data.isAmountFixed + '&redPacketId=' + that.data.redPacketId,
        imageUrl: 'https://bizain.net/wxapp/img/img_chat_share_200xxxhdpi.png',
        success: function () {
          console.log("URL22===/pages/split/split?isAmountFixed=" + that.data.isAmountFixed + '&redPacketId=' + that.data.redPacketId);
          wx.navigateTo({
            url: "/pages/split/split?isAmountFixed=" + that.data.isAmountFixed + '&redPacketId=' + that.data.redPacketId
          })

        }
      }
    }

    return {
      title: '',
      path: '/pages/index/index'
    }

  }
})


